package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.Objects;

/**
 * @desc BffAchievementDto
 * @使用场景
 */
@Data
public class BffAchievementDto implements Serializable {

  /**
   * 成果ID
   */
  @ApiModelProperty("成果ID")
  private String achievementId;

  /**
   * 成果名称
   */
  @ApiModelProperty("成果名称")
  private String achievementName;

  /**
   * 成果类别名称
   */
  @ApiModelProperty("成果类别名称")
  private String achievementCategoryName;

  /**
   * 成果等级名称
   */
  @ApiModelProperty("成果等级名称")
  private String achievementGradeName;

  /**
   * 版权归属别名
   */
  @ApiModelProperty("版权归属别名")
  private String belongName;

  /**
   * 版权归属对象名称
   */
  @ApiModelProperty("版权归属对象名称")
  private String copyrightObjectName;

  /**
   * 授予时间
   */
  @ApiModelProperty("授予时间")
  private Date awardedTime;

  /**
   * 有效期结束时间
   */
  @ApiModelProperty("有效期结束时间")
  private Date validEndTime;

  /**
   * 是否标志性成果 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否标志性成果")
  private String isSymbolicAchievements;
/**
     * 成果业务等级名称 
     */
    @ApiModelProperty("成果业务等级名称")
    private String	 achievementBusinessGradeName;
/**
     * 成果类型名称
     */
    @ApiModelProperty("成果类型名称")
    private String	 achievementTypeName;
/**
     * 成果类型ID 
     */
    @ApiModelProperty("成果类型ID")
    private String	 achievementTypeId;

    /**
     * 成果类型编号 
     */
    @ApiModelProperty("成果类型编号")
    private String	 achievementTypeNumber;

    /**
     * 成果类别ID 
     */
    @ApiModelProperty("成果类别ID")
    private String	 achievementCategoryId;

    /**
     * 成果类别编号 
     */
    @ApiModelProperty("成果类别编号")
    private String	 achievementCategoryNumber;

    /**
     * 成果等级ID 
     */
    @ApiModelProperty("成果等级ID")
    private String	 achievementGradeId;

    /**
     * 成果等级编号 
     */
    @ApiModelProperty("成果等级编号")
    private String	 achievementGradeNumber;

    /**
     * 版权归属对象类型编码 ORGANIZATION:组织 DEPARTMENT:部门 PERSONAL:个人
     */
    @ApiModelProperty("版权归属对象类型编码")
    private String	 copyrightObjectTypeCode;

    /**
     * 是否开启转化成果 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启转化成果")
    private String	 isUseConversion;

    /**
     * 成果编号 
     */
    @ApiModelProperty("成果编号")
    private String	 achievementNumber;

    /**
     * 成果介绍 
     */
    @ApiModelProperty("成果介绍")
    private String	 achievementDesc;

    /**
     * 成果补充介绍 
     */
    @ApiModelProperty("成果补充介绍")
    private String	 achievementAddDesc;

    /**
     * 成果转化介绍 
     */
    @ApiModelProperty("成果转化介绍")
    private String	 achievementConversiontDesc;

    /**
     * 授予单位 
     */
    @ApiModelProperty("授予单位")
    private String	 awardedUnit;

    /**
     * 相关文号 
     */
    @ApiModelProperty("相关文号")
    private String	 relatedDocument;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String	 subjectLifeCycle;

    /**
     * 操作人就职记录ID 
     */
    @ApiModelProperty("操作人就职记录ID")
    private String	 operationInductionId;

    /**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;

    /**
     * 操作时间 
     */
    @ApiModelProperty("操作时间")
    private Date	 operateTime;
/**
     * 成果业务等级ID 
     */
    @ApiModelProperty("成果业务等级ID")
    private String	 achievementBusinessGradeId;

    /**
     * 成果业务等级编号 
     */
    @ApiModelProperty("成果业务等级编号")
    private String	 achievementBusinessGradeNumber;

    /**
     * 业绩责任部门ID 
     */
    @ApiModelProperty("业绩责任部门ID")
    private String	 dutyDeptId;

    /**
     * 部门简称 
     */
    @ApiModelProperty("部门简称")
    private String	 deptShortName;
/**
     * 版权归属对象ID
     */
    @ApiModelProperty("版权归属对象ID")
    private String	 copyrightObjectId;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffAchievementDto that = (BffAchievementDto) o;
      return  achievementId == that.achievementId&&achievementName == that.achievementName&&achievementCategoryName == that.achievementCategoryName&&achievementGradeName == that.achievementGradeName&&belongName == that.belongName&&copyrightObjectName == that.copyrightObjectName&&awardedTime == that.awardedTime&&validEndTime == that.validEndTime&&isSymbolicAchievements == that.isSymbolicAchievements&&achievementBusinessGradeName == that.achievementBusinessGradeName&&achievementTypeName == that.achievementTypeName&&achievementTypeId == that.achievementTypeId&&achievementTypeNumber == that.achievementTypeNumber&&achievementCategoryId == that.achievementCategoryId&&achievementCategoryNumber == that.achievementCategoryNumber&&achievementGradeId == that.achievementGradeId&&achievementGradeNumber == that.achievementGradeNumber&&copyrightObjectTypeCode == that.copyrightObjectTypeCode&&isUseConversion == that.isUseConversion&&achievementNumber == that.achievementNumber&&achievementDesc == that.achievementDesc&&achievementAddDesc == that.achievementAddDesc&&achievementConversiontDesc == that.achievementConversiontDesc&&awardedUnit == that.awardedUnit&&relatedDocument == that.relatedDocument&&subjectLifeCycle == that.subjectLifeCycle&&operationInductionId == that.operationInductionId&&createTime == that.createTime&&operateTime == that.operateTime&&achievementBusinessGradeId == that.achievementBusinessGradeId&&achievementBusinessGradeNumber == that.achievementBusinessGradeNumber&&dutyDeptId == that.dutyDeptId&&deptShortName == that.deptShortName&&copyrightObjectId == that.copyrightObjectId;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), achievementId,achievementName,achievementCategoryName,achievementGradeName,belongName,copyrightObjectName,awardedTime,validEndTime,isSymbolicAchievements,achievementBusinessGradeName,achievementTypeName,achievementTypeId,achievementTypeNumber,achievementCategoryId,achievementCategoryNumber,achievementGradeId,achievementGradeNumber,copyrightObjectTypeCode,isUseConversion,achievementNumber,achievementDesc,achievementAddDesc,achievementConversiontDesc,awardedUnit,relatedDocument,subjectLifeCycle,operationInductionId,createTime,operateTime,achievementBusinessGradeId,achievementBusinessGradeNumber,dutyDeptId,deptShortName,copyrightObjectId);
    }

}
